package db;

import java.sql.SQLException;
import java.util.List;
import javax.sql.DataSource;
import model.ParameterModel;
import model.ProductModel;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ColumnListHandler;

public class MYSQLControl {
    static DataSource ds = MyDataSource.getDataSource("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8");
    static QueryRunner qr = new QueryRunner(ds);
    //查询一列
    @SuppressWarnings({ "unchecked", "rawtypes" })
    public static List<Object> getListOneBySQL (String sql,String id){
        List<Object> list=null;
        try {
            list = (List<Object>) qr.query(sql, new ColumnListHandler(id));
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }

    //第二类数据库操作方法
    public static void executeInsert_Pro(List<ProductModel> datalist)  {
        /*
         * 定义一个Object数组，行列
         * 4表示列数，根据自己的数据定义这里面的数字
         * params[i][0]等是对数组赋值，这里用到集合的get方法
         */
        Object[][] params = new Object[datalist.size()][4];
        for ( int i=0; i<params.length; i++ ){
            params[i][0] = datalist.get(i).getProduct_id();
            params[i][1] = datalist.get(i).getProduct_name();
            params[i][2] = datalist.get(i).getProduct_url();
            params[i][3] = datalist.get(i).getProduct_price();
        }
        try {
            qr.batch("insert into product (product_id, product_name, product_url ,product_price)"
                    + "values (?,?,?,?)", params);
            System.out.println("执行数据库完毕！"+"成功插入数据：" + datalist.size() + "条");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    //第二类数据库操作方法
    public static void executeInsert_Par(List<ParameterModel> datalist)  {
        /*
         * 定义一个Object数组，行列
         * 2表示列数，根据自己的数据定义这里面的数字
         * params[i][0]等是对数组赋值，这里用到集合的get方法
         */
        Object[][] params = new Object[datalist.size()][2];
        for ( int i=0; i<params.length; i++ ){
            params[i][0] = datalist.get(i).getProduct_id();
            params[i][1] = datalist.get(i).getParameter();
        }
        try {
            qr.batch("insert into fridge (product_id, parameter) values (?,?)", params);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}